python中生成器的用法及案例

您所在的位置:网站首页 file python中用法 python中生成器的用法及案例

python中生成器的用法及案例

2023-06-05 08:05| 来源: 网络整理| 查看: 265

python中生成器的用法及案例 1.生成器介绍1.1使用函数创建生成器1.2使用生成器表达式创建生成器 2.生成器的应用2.1生成斐波那契数列2.2生成无限序列2.3处理大型文件

1.生成器介绍 1.1使用函数创建生成器 def my_generator(): yield 1 yield 2 yield 3 g = my_generator() print(next(g)) print(next(g)) print(next(g))

  在上述示例中,my_generator是一个生成器函数,使用yield关键字来生成值。每次调用next()函数时,生成器会执行到yield语句处,返回相应的值。通过连续调用next()函数,可以逐个获取生成器的值。

1.2使用生成器表达式创建生成器 g = (i for i in range(0, 10)) for value in g: print(value)

  在上述示例中,(x for x in range(0, 10))是一个生成器表达式,类似于列表推导式,但使用圆括号来表示生成器而不是方括号。生成器表达式会动态地生成指定范围内的值。

  无论是使用生成器函数还是生成器表达式,生成器都可以用于循环中进行迭代:在循环中,生成器会自动迭代并生成每个值。这种逐个生成值的特性使得生成器非常适合处理大型数据集或需要逐步生成值的情况,因为它不会一次性将所有值加载到内存中。

2.生成器的应用 2.1生成斐波那契数列

斐波那契数列如下:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181

print("fibonacci") def fibonacci(): a, b = 0, 1 while True: yield a+b a, b = b, a + b g = fibonacci() for i in range(0, 20): print(next(g))

写成类的形式如下:

class Fib: def __init__(self, count): self.count = count self.first = 0 self.second = 1 self.sum = self.first + self.second self.current_count = 0 def __iter__(self): return self def __next__(self): if self.current_count


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3